// index.js
const app = getApp();
const api = require('../../utils/api.js');
const envConfig = require('../../config/env.js');

Page({
  data: {
    motto: 'NongHi 农作物助手',
    plantImage: '',
    isAnalyzing: false,
    recognitionResult: null,
    errorMessage: '',
    userInfo: null,
    isLoggedIn: false,
    // 新增：是否显示开发者选项
    showDevOptions: false,
    recentRecords: [],
    loadingRecords: false
  },
  
  onLoad() {
    // 初始化数据，避免undefined错误
    if (!app.globalData) {
      app.globalData = {};
    }
    
    // 检查用户是否登录
    this.checkLoginStatus();
    
    // 判断是否显示开发者选项
    this.checkDevOptions();
    
    // 加载最近诊断记录
    this.loadRecentRecords();
  },
  
  onShow() {
    // 清除之前的错误信息
    this.setData({
      errorMessage: ''
    });
    
    // 每次显示页面时检查登录状态
    this.checkLoginStatus();
    
    // 检查开发者选项
    this.checkDevOptions();
    
    // 每次显示页面时刷新最近诊断记录
    this.loadRecentRecords();
  },
  
  // 检查登录状态
  checkLoginStatus() {
    const app = getApp();
    
    // 先从全局变量获取
    let userInfo = app.globalData.userInfo;
    
    // 如果全局变量没有，从本地存储获取
    if (!userInfo) {
      userInfo = wx.getStorageSync('userInfo');
      if (userInfo) {
        app.globalData.userInfo = userInfo;
      }
    }
    
    this.setData({
      userInfo: userInfo,
      isLoggedIn: !!userInfo
    });
  },
  
  // 检查是否显示开发者选项
  checkDevOptions() {
    // 使用环境配置中的showDevTools字段来控制按钮显示
    const shouldShow = envConfig.shouldShowDevTools();
    
    this.setData({
      showDevOptions: shouldShow
    });
    
    // 输出当前环境信息
    console.log(`当前环境: ${envConfig.currentEnv}, API地址: ${app.globalData.baseUrl}`);
  },
  
  // 加载最近诊断记录
  loadRecentRecords() {
    // 设置加载状态
    this.setData({
      loadingRecords: true
    });
    
    // 先从本地存储获取
    let historyRecords = wx.getStorageSync('diagnosisHistory') || [];
    
    // 格式化并只显示最近3条
    if (historyRecords.length > 0) {
      const recentRecords = historyRecords.slice(0, 3).map(record => {
        return {
          ...record,
          diagnosis_time: new Date(record.diagnosisTime).toLocaleString('zh-CN', {
            month: 'numeric',
            day: 'numeric',
            hour: '2-digit',
            minute: '2-digit'
          })
        };
      });
      
      this.setData({
        recentRecords: recentRecords,
        loadingRecords: false
      });
    } else {
      // 如果用户已登录，可以尝试从服务器获取
      const userInfo = getApp().globalData.userInfo || wx.getStorageSync('userInfo');
      
      if (userInfo && userInfo.userId) {
        // 这里可以添加从服务器获取历史记录的代码
        // ...
        
        // 测试用，直接设置为空
        this.setData({
          recentRecords: [],
          loadingRecords: false
        });
      } else {
        this.setData({
          recentRecords: [],
          loadingRecords: false
        });
      }
    }
  },
  
  // 查看历史记录详情
  viewRecordDetail(e) {
    const id = e.currentTarget.dataset.id;
    const record = this.data.recentRecords.find(item => item.id === id);
    
    // 存储当前记录到全局变量，以便详情页使用
    getApp().globalData.currentRecordDetail = record;
    
    wx.navigateTo({
      url: '/pages/history/detail/detail'
    });
  },
  
  // 跳转到登录页
  goToLogin() {
    wx.navigateTo({
      url: '/pages/login/login'
    });
  },
  
  // 查看历史记录
  viewHistory() {
    wx.navigateTo({
      url: '/pages/history/history'
    });
  },
  
  // 导航至诊断页面
  navigateToDiagnosis() {
    wx.navigateTo({
      url: '../diagnosis/diagnosis'
    });
  },
  
  // 病害百科页面
  navigateToEncyclopedia() {
    wx.showToast({
      title: '病害百科功能开发中',
      icon: 'none',
      duration: 2000
    });
  },
  
  // 种植日历页面
  navigateToCalendar() {
    wx.showToast({
      title: '种植日历功能开发中',
      icon: 'none',
      duration: 2000
    });
  },
  
  // 专家咨询页面
  navigateToExpert() {
    wx.showToast({
      title: '专家咨询功能开发中',
      icon: 'none',
      duration: 2000
    });
  },
  
  // 跳转到环境切换工具
  navigateToEnvSwitcher() {
    wx.navigateTo({
      url: '/pages/admin/env-switcher'
    });
  }
});
